from dataclasses import dataclass
from typing import Optional

from app.models.audio_model import AudioDownloadResult
from app.models.transcriber_model import TranscriptResult


@dataclass
class NoteResult:
    markdown: str                  # GPT 总结的 Markdown 内容
    transcript: TranscriptResult                # Whisper 转写结果
    audio_meta: AudioDownloadResult  # 音频下载的元信息（title、duration、封面等）
    title: Optional[str] = None    # 笔记标题
    raw_text: Optional[str] = None # 原始文本
    video_id: Optional[str] = None # 视频ID
    platform: Optional[str] = None # 平台